function gui = createCameraLidarCalibrationImageDataFigure(app)
    gui = struct();

    % Open a window and add some menus
    gui.handle = figure( ...
        'Name', 'ImageData', ...
        'NumberTitle', 'off', ...
        'MenuBar', 'none', ...
        'ToolBar', 'none', ...
        'HandleVisibility', 'off', ...
        'Visible', 'off');

    gui.handle.SizeChangedFcn = @onSizeChanged;
    gui.mTableImagePointsColumnWidthRatio = [0.45 0.45];

    % create an image points table to this figure
    gui.mTableImagePoints = uitable(...
                                'Parent', gui.handle, ...
                                'Data', {}, ...
                                'Units', 'Normalized', ...
                                'Position', [0 0 1 1]);
    % gui.mTableImagePoints.RowName = [];
    gui.mTableImagePoints.ColumnName = {'u', 'v'};
    gui.mTableImagePoints.ColumnFormat = {[], []};

    function onSizeChanged(src, callbackdata)
        gui.mTableImagePoints.Units = 'pixels';
        figureCurrentWidth = gui.mTableImagePoints.Position(3);
        gui.mTableImagePoints.Units = 'Normalized';
        gui.mTableImagePoints.ColumnWidth = {...
                                            figureCurrentWidth * gui.mTableImagePointsColumnWidthRatio(1) ...
                                            figureCurrentWidth * gui.mTableImagePointsColumnWidthRatio(2)};
    end % onSizeChanged
end